package cc.rengu.oltp.service.common.dao;


import cc.rengu.oltp.service.common.entity.MchntOrderDetail;

import java.util.List;

/**
 * 商户订单明细表操作接口
 * Created by 王成 on 2020/10/16
 */
public interface MchntOrderDetailMapper {
    /**
     * 登记商户订单明细
     *
     * @param mchntOrderDetail 商户订单明细
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertMchntOrderDetail(MchntOrderDetail mchntOrderDetail) throws Exception;

    /**
     * 根据主键更新商户订单明细
     *
     * @param mchntOrderDetail 商户订单明细
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateMchntOrderDetailByPrimaryKey(MchntOrderDetail mchntOrderDetail) throws Exception;

    /**
     * 根据主键查询商户订单明细
     *
     * @param instId          多法人标识
     * @param mchntNo         商户号
     * @param mchntOrderId    商户订单号
     * @param mchntSubOrderId 商户子订单号
     * @return 商户订单明细
     * @throws Exception 异常
     */
    MchntOrderDetail selectMchntOrderDetailByPrimaryKey(String instId, String mchntNo, String mchntOrderId, String mchntSubOrderId) throws Exception;

    /**
     * 根据系统流水号查询商户订单明细
     *
     * @param instId    多法人标识
     * @param sysSeqNum 退款流水号
     * @return 商户订单明细
     * @throws Exception 异常
     */
    List<MchntOrderDetail> selectMchntOrderDetailBySysSeqNum(String instId, String sysSeqNum) throws Exception;

    /**
     * 根据退款流水号查询商户订单明细
     *
     * @param instId       多法人标识
     * @param refundSeqNum 退款流水号
     * @return 商户订单明细
     * @throws Exception 异常
     */
    List<MchntOrderDetail> selectMchntOrderDetailByRefundSeqNum(String instId, String refundSeqNum) throws Exception;

    /**
     * 根据商户订单号查询商户订单明细
     *
     * @param instId       多法人标识
     * @param mchntNo      商户号
     * @param mchntOrderId 商户订单号
     * @return 商户订单明细
     * @throws Exception 异常
     */
    List<MchntOrderDetail> selectMchntOrderDetailByMchntOrderId(String instId, String mchntNo, String mchntOrderId) throws Exception;
}
